﻿namespace DoNet.WechatPay.V2.Entitys.Results
{
    public class OrderQueryResult : PayResultCode
    {
        /// <summary>
        /// 用户标识	
        /// </summary>
        public string openid { set; get; } = string.Empty;
        /// <summary>
        /// 是否关注公众账号
        /// </summary>
        public string is_subscribe { set; get; } = string.Empty;
        /// <summary>
        /// 用户子标识
        /// </summary>
        public string sub_openid { set; get; } = string.Empty;
        /// <summary>
        /// 是否关注子公众账号
        /// </summary>
        public string sub_is_subscribe { set; get; } = string.Empty;
        /*
        设备号	device_info
        用户标识	openid
        是否关注公众账号	is_subscribe
        用户子标识	sub_openid
        是否关注子公众账号	sub_is_subscribe
        交易类型	trade_type
        交易状态	trade_state
        付款银行	bank_type
        商品详情	detail
        订单金额	total_fee
        标价币种	fee_type
        应结订单金额	settlement_total_fee
        现金支付金额	cash_fee
        现金支付货币类型	cash_fee_type
        代金券金额	coupon_fee
        微信支付订单号	transaction_id
        商户订单号	out_trade_no
        商家数据包	attach
        支付完成时间	time_end
        代金券ID	coupon_id_$n
        代金券类型	coupon_type_$n
        单个代金券金额	coupon_fee_$n
        */
        /// <summary>
        /// 交易类型 
        /// 是
        /// JSAPI 公众号支付
        /// NATIVE Native支付
        /// APP APP支付
        /// MWEB H5支付
        /// MICROPAY 扫码支付
        /// </summary>
        public string trade_type { set; get; } = string.Empty;
        /// <summary>
        /// 交易状态 
        /// 是
        /// </summary>
        public string trade_state { set; get; } = string.Empty;
        /// <summary>
        /// 交易状态描述
        /// </summary>
        public string trade_state_desc { set; get; } = string.Empty;
        /// <summary>
        /// 付款银行
        /// </summary>
        public string bank_type { set; get; } = string.Empty;
        /// <summary>
        /// 商品详情
        /// 否
        /// </summary>
        public string detail { set; get; } = string.Empty;
        /// <summary>
        /// 订单金额
        /// 订单总金额，单位为分，只能为整数，详见支付金额
        /// </summary>
        public long total_fee { set; get; }
        /// <summary>
        /// 标价币种
        /// </summary>
        public string fee_type { set; get; } = string.Empty;
        /// <summary>
        /// 应结订单金额
        /// 当订单使用了免充值型优惠券后返回该参数，应结订单金额=订单金额-免充值优惠券金额。
        /// </summary>
        public long settlement_total_fee { set; get; }
        /// <summary>
        /// 现金支付金额
        /// </summary>
        public long cash_fee { set; get; }
        /// <summary>
        /// 现金支付货币类型
        /// </summary>
        public string cash_fee_type { set; get; } = string.Empty;
        /// <summary>
        /// 代金券金额
        /// “代金券”金额<=订单金额，订单金额-“代金券”金额=现金支付金额，详见支付金额
        /// </summary>
        public long coupon_fee { set; get; }
        /// <summary>
        /// 微信支付订单号
        /// </summary>
        public string transaction_id { set; get; } = string.Empty;
        /// <summary>
        /// 商户订单号
        /// </summary>
        public string out_trade_no { set; get; } = string.Empty;
        /// <summary>
        /// 商家数据包
        /// </summary>
        public string attach { set; get; } = string.Empty;
        /// <summary>
        /// 支付完成时间
        /// 订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则
        /// </summary>
        public string time_end { set; get; } = string.Empty;
        /// <summary>
        /// 代金券列表
        /// </summary>
        public List<CouponInfo> coupon_list = new List<CouponInfo>();
    }
}
